Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

змішане програмування на мовах с та асемблер

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Група:
КІ 31
Варіант:
19

Частина тексту файла

Міністерство освіти і науки Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт до лабораторної роботи № 3 з дисципліни: “Системне програмування” на тему: змішане програмування на мовах с та асемблер Варіант - 19 ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР Мета: Оволодіти навиками створення програм частини яких написані різними мовами програмування. Засвоїти правила взаємодії між різними програмними модулями ТЕОРИТИЧНІ ВІДОМОСТІ: /ЗАВДАННЯ / / ВАРІАНТ ЗАВДАННЯ: № Вираз К  19 A2 * 4 + C1 – D2/2 + K  4019   ТЕКСТИ ПРОГРАМ: calc1.asm .386 .model flat,c .data .code calc PROC push ebp ; збереження вершини стеку для відновлення mov ebp,esp ;////////////////////////////////////// mov eax, dword ptr [ebp+8] ;дістаємо A mov ecx, 4 mul ecx add eax, dword ptr [ebp+12] ;дістаємо C mov ecx, eax mov eax, dword ptr [ebp+16] ;дістаємо D mov ebx, 2 mov edx, 0 div ebx ;операція D/K sub ecx, eax mov eax, ecx add eax, dword ptr [ebp+20] ;дістаємо константу К ;////////////////////////////////////// pop ebp ; відновлення стека ret calc ENDP END main1.asm #include <stdio.h> extern "C" int calc(short, char, short, int); void main() { const int K = 4019; short A, D; char C; printf("Enter numbers:\n"); printf("A = "); scanf("%hd", &A); printf("C = "); scanf("%hhd", &C); printf("D = "); scanf("%hd", &D); printf("A * 4 + C - D/2 + K = %d\n", calc(A, C, D, K)); } Результат виконання 1 програми: / calc2.asm .386 .model flat,c .data text BYTE "Result = %d", 10, 13, 0 .code EXTRN printf : proc ;підключення функції printf calc PROC push ebp ; збереження вершини стеку для відновлення mov ebp,esp ;////////////////////////////////////// mov eax, dword ptr [ebp+8] ;дістаємо A mov ecx, 4 mul ecx add eax, dword ptr [ebp+12] ;дістаємо C mov ecx, eax mov eax, dword ptr [ebp+16] ;дістаємо D mov ebx, 2 mov edx, 0 div ebx ;операція D/K sub ecx, eax add ecx, dword ptr [ebp+20] ;дістаємо константу К ;////////////////////////////////////// lea ebx, text push ecx push ebx call printf ;виклик printf (ebx, ecx) ;////////////////////////////////////// pop ebx pop ecx pop ebp ret calc ENDP END main2.asm #include <stdio.h> extern "C" int calc(short, char, short, int); void main() { const int K = 4019; short A, D; char C; printf("Enter numbers:\n"); printf("A = "); scanf("%hd", &A); printf("C = "); scanf("%hhd", &C); printf("D = "); scanf("%hd", &D); calc(A, C, D, K); } Результат виконання 2 програми: / ВИСНОВОК: На даній лабораторній роботі я оволодів навиками створення програм частини яких написані різними мовами програмування. Засвоїти правила взаємодії між різними програмними модулями.
Антиботан аватар за замовчуванням

05.11.2016 21:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини